<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XMLRPC Support</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="libsoup Reference Manual">
<link rel="up" href="ch04.html" title="Web Services APIs">
<link rel="prev" href="libsoup-2.4-HTML-Form-Support.html" title="HTML Form Support">
<link rel="next" href="libsoup-2.4-GValue-Support.html" title="GValue Support">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="libsoup-2.4-HTML-Form-Support.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libsoup Reference Manual</th>
<td><a accesskey="n" href="libsoup-2.4-GValue-Support.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libsoup-2.4-XMLRPC-Support.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#libsoup-2.4-XMLRPC-Support.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="libsoup-2.4-XMLRPC-Support"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libsoup-2.4-XMLRPC-Support.top_of_page"></a>XMLRPC Support</span></h2>
<p>XMLRPC Support — XML-RPC support</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libsoup-2.4-XMLRPC-Support.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;libsoup/soup.h&gt;

<span class="returnvalue">char</span> *              <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-method-call" title="soup_xmlrpc_build_method_call ()">soup_xmlrpc_build_method_call</a>       (<em class="parameter"><code>const <span class="type">char</span> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *params</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> n_params</code></em>);
<a class="link" href="SoupMessage.html" title="SoupMessage"><span class="returnvalue">SoupMessage</span></a> *       <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-request-new" title="soup_xmlrpc_request_new ()">soup_xmlrpc_request_new</a>             (<em class="parameter"><code>const <span class="type">char</span> *uri</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *method_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-parse-method-response" title="soup_xmlrpc_parse_method_response ()">soup_xmlrpc_parse_method_response</a>   (<em class="parameter"><code>const <span class="type">char</span> *method_response</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-extract-method-response" title="soup_xmlrpc_extract_method_response ()">soup_xmlrpc_extract_method_response</a> (<em class="parameter"><code>const <span class="type">char</span> *method_response</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>...</code></em>);

<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-parse-method-call" title="soup_xmlrpc_parse_method_call ()">soup_xmlrpc_parse_method_call</a>       (<em class="parameter"><code>const <span class="type">char</span> *method_call</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><span class="type">char</span> **method_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> **params</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-extract-method-call" title="soup_xmlrpc_extract_method_call ()">soup_xmlrpc_extract_method_call</a>     (<em class="parameter"><code>const <span class="type">char</span> *method_call</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><span class="type">char</span> **method_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">char</span> *              <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-method-response" title="soup_xmlrpc_build_method_response ()">soup_xmlrpc_build_method_response</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
<span class="returnvalue">char</span> *              <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-fault" title="soup_xmlrpc_build_fault ()">soup_xmlrpc_build_fault</a>             (<em class="parameter"><code><span class="type">int</span> fault_code</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *fault_format</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-set-response" title="soup_xmlrpc_set_response ()">soup_xmlrpc_set_response</a>            (<em class="parameter"><code><a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-set-fault" title="soup_xmlrpc_set_fault ()">soup_xmlrpc_set_fault</a>               (<em class="parameter"><code><a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> fault_code</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *fault_format</code></em>,
                                                         <em class="parameter"><code>...</code></em>);

#define             <a class="link" href="libsoup-2.4-XMLRPC-Support.html#SOUP-XMLRPC-FAULT:CAPS" title="SOUP_XMLRPC_FAULT">SOUP_XMLRPC_FAULT</a>
enum                <a class="link" href="libsoup-2.4-XMLRPC-Support.html#SoupXMLRPCFault" title="enum SoupXMLRPCFault">SoupXMLRPCFault</a>;
</pre>
</div>
<div class="refsect1">
<a name="libsoup-2.4-XMLRPC-Support.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="libsoup-2.4-XMLRPC-Support.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="soup-xmlrpc-build-method-call"></a><h3>soup_xmlrpc_build_method_call ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *              soup_xmlrpc_build_method_call       (<em class="parameter"><code>const <span class="type">char</span> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *params</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> n_params</code></em>);</pre>
<p>
This creates an XML-RPC methodCall and returns it as a string.
This is the low-level method that <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-request-new" title="soup_xmlrpc_request_new ()"><code class="function">soup_xmlrpc_request_new()</code></a> is
built on.
</p>
<p>
<em class="parameter"><code>params</code></em> is an array of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> representing the parameters to
<em class="parameter"><code>method</code></em>. (It is *not* a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>, although if you have a
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>, you can just pass its <code class="literal">values</code>f and
<code class="literal">n_values</code> fields.)
</p>
<p>
The correspondence between glib types and XML-RPC types is:
</p>
<p>
  int: <span class="type">int</span> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-INT:CAPS"><code class="literal">G_TYPE_INT</code></a>)
  boolean: <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS"><code class="literal">G_TYPE_BOOLEAN</code></a>)
  string: <span class="type">char</span>* (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS"><code class="literal">G_TYPE_STRING</code></a>)
  double: <span class="type">double</span> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><code class="literal">G_TYPE_DOUBLE</code></a>)
  datetime.iso8601: <a class="link" href="libsoup-2.4-Soup-Miscellaneous-Utilities.html#SoupDate"><span class="type">SoupDate</span></a> (<code class="literal">SOUP_TYPE_DATE</code>)
  base64: <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> (<a class="link" href="libsoup-2.4-GValue-Support.html#SOUP-TYPE-BYTE-ARRAY:CAPS" title="SOUP_TYPE_BYTE_ARRAY"><code class="literal">SOUP_TYPE_BYTE_ARRAY</code></a>)
  struct: <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#G-TYPE-HASH-TABLE:CAPS"><code class="literal">G_TYPE_HASH_TABLE</code></a>)
  array: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#G-TYPE-VALUE-ARRAY:CAPS"><code class="literal">G_TYPE_VALUE_ARRAY</code></a>)
</p>
<p>
For structs, use a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> that maps strings to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>;
<a class="link" href="libsoup-2.4-GValue-Support.html#soup-value-hash-new" title="soup_value_hash_new ()"><code class="function">soup_value_hash_new()</code></a> and related methods can help with this.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>the name of the XML-RPC method</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
<td>arguments to <em class="parameter"><code>method</code></em>. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_params]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_params</code></em> :</span></p></td>
<td>length of <em class="parameter"><code>params</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the text of the methodCall, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-request-new"></a><h3>soup_xmlrpc_request_new ()</h3>
<pre class="programlisting"><a class="link" href="SoupMessage.html" title="SoupMessage"><span class="returnvalue">SoupMessage</span></a> *       soup_xmlrpc_request_new             (<em class="parameter"><code>const <span class="type">char</span> *uri</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *method_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Creates an XML-RPC methodCall and returns a <a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a>, ready
to send, for that method call.
</p>
<p>
The parameters are passed as type/value pairs; ie, first a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>,
and then a value of the appropriate type, finally terminated by
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-INVALID:CAPS"><code class="literal">G_TYPE_INVALID</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
<td>URI of the XML-RPC service</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>the name of the XML-RPC method to invoke at <em class="parameter"><code>uri</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>parameters for <em class="parameter"><code>method</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a <a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a> encoding the
indicated XML-RPC request. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-parse-method-response"></a><h3>soup_xmlrpc_parse_method_response ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            soup_xmlrpc_parse_method_response   (<em class="parameter"><code>const <span class="type">char</span> *method_response</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Parses <em class="parameter"><code>method_response</code></em> and returns the return value in <em class="parameter"><code>value</code></em>. If
<em class="parameter"><code>method_response</code></em> is a fault, <em class="parameter"><code>value</code></em> will be unchanged, and <em class="parameter"><code>error</code></em>
will be set to an error of type <a class="link" href="libsoup-2.4-XMLRPC-Support.html#SOUP-XMLRPC-FAULT:CAPS" title="SOUP_XMLRPC_FAULT"><code class="literal">SOUP_XMLRPC_FAULT</code></a>, with the error
<span class="type">code</span> containing the fault code, and the error <span class="type">message</span> containing
the fault string. (If <em class="parameter"><code>method_response</code></em> cannot be parsed at all,
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-parse-method-response" title="soup_xmlrpc_parse_method_response ()"><code class="function">soup_xmlrpc_parse_method_response()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, but <em class="parameter"><code>error</code></em>
will be unset.)
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_response</code></em> :</span></p></td>
<td>the XML-RPC methodResponse string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
<td>the length of <em class="parameter"><code>method_response</code></em>, or -1 if it is NUL-terminated</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>on return, the return value from <em class="parameter"><code>method_call</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>error return value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a return value was parsed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the
response could not be parsed, or contained a fault.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-extract-method-response"></a><h3>soup_xmlrpc_extract_method_response ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            soup_xmlrpc_extract_method_response (<em class="parameter"><code>const <span class="type">char</span> *method_response</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Parses <em class="parameter"><code>method_response</code></em> and extracts the return value into
a variable of the correct type.
</p>
<p>
If <em class="parameter"><code>method_response</code></em> is a fault, the return value will be unset,
and <em class="parameter"><code>error</code></em> will be set to an error of type <a class="link" href="libsoup-2.4-XMLRPC-Support.html#SOUP-XMLRPC-FAULT:CAPS" title="SOUP_XMLRPC_FAULT"><code class="literal">SOUP_XMLRPC_FAULT</code></a>, with
the error <span class="type">code</span> containing the fault code, and the error <span class="type">message</span>
containing the fault string. (If <em class="parameter"><code>method_response</code></em> cannot be parsed
at all, <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-extract-method-response" title="soup_xmlrpc_extract_method_response ()"><code class="function">soup_xmlrpc_extract_method_response()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>,
but <em class="parameter"><code>error</code></em> will be unset.)
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_response</code></em> :</span></p></td>
<td>the XML-RPC methodResponse string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
<td>the length of <em class="parameter"><code>method_response</code></em>, or -1 if it is NUL-terminated</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>error return value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>the expected type of the return value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>location for return value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a return value was parsed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the
response was of the wrong type, or contained a fault.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-parse-method-call"></a><h3>soup_xmlrpc_parse_method_call ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            soup_xmlrpc_parse_method_call       (<em class="parameter"><code>const <span class="type">char</span> *method_call</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><span class="type">char</span> **method_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> **params</code></em>);</pre>
<p>
Parses <em class="parameter"><code>method_call</code></em> to get the name and parameters, and returns the
parameter values in a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>; see also
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-extract-method-call" title="soup_xmlrpc_extract_method_call ()"><code class="function">soup_xmlrpc_extract_method_call()</code></a>, which is more convenient if you
know in advance what the types of the parameters will be.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_call</code></em> :</span></p></td>
<td>the XML-RPC methodCall string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
<td>the length of <em class="parameter"><code>method_call</code></em>, or -1 if it is NUL-terminated</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>on return, the methodName from <em class="parameter"><code>method_call</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
<td>on return, the parameters from <em class="parameter"><code>method_call</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>success or failure.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-extract-method-call"></a><h3>soup_xmlrpc_extract_method_call ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            soup_xmlrpc_extract_method_call     (<em class="parameter"><code>const <span class="type">char</span> *method_call</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> length</code></em>,
                                                         <em class="parameter"><code><span class="type">char</span> **method_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Parses <em class="parameter"><code>method_call</code></em> to get the name and parameters, and puts
the parameters into variables of the appropriate types.
</p>
<p>
The parameters are handled similarly to
<em class="parameter"><code>soup_xmlrpc_build_method_call</code></em>, with pairs of types and values,
terminated by <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-INVALID:CAPS"><code class="literal">G_TYPE_INVALID</code></a>, except that values are pointers to
variables of the indicated type, rather than values of the type.
</p>
<p>
See also <a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-parse-method-call" title="soup_xmlrpc_parse_method_call ()"><code class="function">soup_xmlrpc_parse_method_call()</code></a>, which can be used if
you don't know the types of the parameters.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_call</code></em> :</span></p></td>
<td>the XML-RPC methodCall string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
<td>the length of <em class="parameter"><code>method_call</code></em>, or -1 if it is NUL-terminated</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>on return, the methodName from <em class="parameter"><code>method_call</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>return types and locations for parameters</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>success or failure.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-build-method-response"></a><h3>soup_xmlrpc_build_method_response ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *              soup_xmlrpc_build_method_response   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
<p>
This creates a (successful) XML-RPC methodResponse and returns it
as a string. To create a fault response, use
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-fault" title="soup_xmlrpc_build_fault ()"><code class="function">soup_xmlrpc_build_fault()</code></a>.
</p>
<p>
The glib type to XML-RPC type mapping is as with
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-method-call" title="soup_xmlrpc_build_method_call ()"><code class="function">soup_xmlrpc_build_method_call()</code></a>, qv.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the return value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the text of the methodResponse, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-build-fault"></a><h3>soup_xmlrpc_build_fault ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *              soup_xmlrpc_build_fault             (<em class="parameter"><code><span class="type">int</span> fault_code</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *fault_format</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
This creates an XML-RPC fault response and returns it as a string.
(To create a successful response, use
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#soup-xmlrpc-build-method-response" title="soup_xmlrpc_build_method_response ()"><code class="function">soup_xmlrpc_build_method_response()</code></a>.)
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>fault_code</code></em> :</span></p></td>
<td>the fault code</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fault_format</code></em> :</span></p></td>
<td>a <code class="function">printf()</code>-style format string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>the parameters to <em class="parameter"><code>fault_format</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the text of the fault</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-set-response"></a><h3>soup_xmlrpc_set_response ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                soup_xmlrpc_set_response            (<em class="parameter"><code><a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Sets the status code and response body of <em class="parameter"><code>msg</code></em> to indicate a
successful XML-RPC call, with a return value given by <em class="parameter"><code>type</code></em> and the
following varargs argument, of the type indicated by <em class="parameter"><code>type</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>an XML-RPC request</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>the type of the response value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>the response value</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="soup-xmlrpc-set-fault"></a><h3>soup_xmlrpc_set_fault ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                soup_xmlrpc_set_fault               (<em class="parameter"><code><a class="link" href="SoupMessage.html" title="SoupMessage"><span class="type">SoupMessage</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> fault_code</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *fault_format</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Sets the status code and response body of <em class="parameter"><code>msg</code></em> to indicate an
unsuccessful XML-RPC call, with the error described by <em class="parameter"><code>fault_code</code></em>
and <em class="parameter"><code>fault_format</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>an XML-RPC request</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fault_code</code></em> :</span></p></td>
<td>the fault code</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fault_format</code></em> :</span></p></td>
<td>a <code class="function">printf()</code>-style format string</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
<td>the parameters to <em class="parameter"><code>fault_format</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="SOUP-XMLRPC-FAULT:CAPS"></a><h3>SOUP_XMLRPC_FAULT</h3>
<pre class="programlisting">#define SOUP_XMLRPC_FAULT soup_xmlrpc_fault_quark()
</pre>
<p>
A <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> domain representing an XML-RPC fault code. Used with
<a class="link" href="libsoup-2.4-XMLRPC-Support.html#SoupXMLRPCFault" title="enum SoupXMLRPCFault"><span class="type">SoupXMLRPCFault</span></a> (although servers may also return fault codes not
in that enumeration).
</p>
</div>
<hr>
<div class="refsect2">
<a name="SoupXMLRPCFault"></a><h3>enum SoupXMLRPCFault</h3>
<pre class="programlisting">typedef enum {
	SOUP_XMLRPC_FAULT_PARSE_ERROR_NOT_WELL_FORMED = -32700,
	SOUP_XMLRPC_FAULT_PARSE_ERROR_UNSUPPORTED_ENCODING = -32701,
	SOUP_XMLRPC_FAULT_PARSE_ERROR_INVALID_CHARACTER_FOR_ENCODING = -32702,
	SOUP_XMLRPC_FAULT_SERVER_ERROR_INVALID_XML_RPC = -32600,
	SOUP_XMLRPC_FAULT_SERVER_ERROR_REQUESTED_METHOD_NOT_FOUND = -32601,
	SOUP_XMLRPC_FAULT_SERVER_ERROR_INVALID_METHOD_PARAMETERS = -32602,
	SOUP_XMLRPC_FAULT_SERVER_ERROR_INTERNAL_XML_RPC_ERROR = -32603,
	SOUP_XMLRPC_FAULT_APPLICATION_ERROR = -32500,
	SOUP_XMLRPC_FAULT_SYSTEM_ERROR = -32400,
	SOUP_XMLRPC_FAULT_TRANSPORT_ERROR = -32300
} SoupXMLRPCFault;
</pre>
<p>
Pre-defined XML-RPC fault codes from <a class="ulink" href="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php" target="_top">http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php</a>.
These are an extension, not part of the XML-RPC spec; you can't
assume servers will use them.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-PARSE-ERROR-NOT-WELL-FORMED:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_PARSE_ERROR_NOT_WELL_FORMED</code></span></p></td>
<td>request was not
  well-formed
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-PARSE-ERROR-UNSUPPORTED-ENCODING:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_PARSE_ERROR_UNSUPPORTED_ENCODING</code></span></p></td>
<td>request was in
  an unsupported encoding
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-PARSE-ERROR-INVALID-CHARACTER-FOR-ENCODING:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_PARSE_ERROR_INVALID_CHARACTER_FOR_ENCODING</code></span></p></td>
<td>  request contained an invalid character
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-SERVER-ERROR-INVALID-XML-RPC:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_SERVER_ERROR_INVALID_XML_RPC</code></span></p></td>
<td>request was not
  valid XML-RPC
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-SERVER-ERROR-REQUESTED-METHOD-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_SERVER_ERROR_REQUESTED_METHOD_NOT_FOUND</code></span></p></td>
<td>method
  not found
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-SERVER-ERROR-INVALID-METHOD-PARAMETERS:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_SERVER_ERROR_INVALID_METHOD_PARAMETERS</code></span></p></td>
<td>invalid
  parameters
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-SERVER-ERROR-INTERNAL-XML-RPC-ERROR:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_SERVER_ERROR_INTERNAL_XML_RPC_ERROR</code></span></p></td>
<td>internal
  error
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-APPLICATION-ERROR:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_APPLICATION_ERROR</code></span></p></td>
<td>start of reserved range for
  application error codes
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-SYSTEM-ERROR:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_SYSTEM_ERROR</code></span></p></td>
<td>start of reserved range for
  system error codes
</td>
</tr>
<tr>
<td><p><a name="SOUP-XMLRPC-FAULT-TRANSPORT-ERROR:CAPS"></a><span class="term"><code class="literal">SOUP_XMLRPC_FAULT_TRANSPORT_ERROR</code></span></p></td>
<td>start of reserved range for
  transport error codes
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>